﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Capa_Negocio_Interface;
using Capa_Negocio_Facade;
using Capa_Entidad;
public partial class Clinica_wfAtencionHistoriaSocial : System.Web.UI.Page
{
    IFacadeRegistrarAtencion BL_RegistrarHistoriaSocial = new FacadeRegistrarAtencion();
    private static String msg, titulo;
    private static string operacion="";
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            if (Session["Ate_Operacion"] == null)
            {
                Response.Redirect("wfAtencionListado.aspx");
                return;
            }

            if ((string)Session["Ate_Operacion"] == "M")
            {

                operacion = "M";
                this.getObtenerHistoriaSocial((Int32)Session["IDAtencion"]);
            }
            else if ((string)Session["Ate_Operacion"] == "C")
            {
                operacion = "C";
            }
            else
            {
                MostrarComentario("Se debe realizar una acción de Registrar o Modificar Atención");
                Response.Redirect("~/Clinica/wfAtencionListado.aspx");
            }
            
        }
    }
    protected void btnAceptarHS_Click(object sender, EventArgs e)
    {

        /* cambio de Ate_Operacion2 a Ate_Operacion*/
        if (Session["Ate_Operacion"].ToString() == "P")
        {
            return;
        }
        if (operacion =="C")
        {
            this.insertarHistoriaSocial();
        }
        else if (operacion == "M")
        {
            this.ModificarHistoriaSocial();
        }
        else {

            return;
        }
    
    }



    private void Redirecionar(String msg, Boolean ok)
    {
     
        Session["msg"] = msg;
        Session["ContenidoMsj"] = ok;
        Response.Redirect("wfAtencionListado.aspx", false);
    }

    private void insertarHistoriaSocial()
    {
        ATE_HISTORIA_SOCIAL obj = new ATE_HISTORIA_SOCIAL();
        
        try
        {
           //obj.ATE_ID_ATENCION = (Int32)Session["IDAtencion"]; 
            //obj.ATE_ID_ATENCION = idPruebaAtencion;
            obj.HISOC_FLAG_DINAMICA_FAMILIAR = (string)rdDinamicaFam.Value;
            obj.HISOC_ACTIVIDAD_LABORAL = txtActividadLab.Text;
            obj.HISOC_ENFERMEDADES_FAMILIA = txtEnfermedad.Text;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdEstructuraSoc.Value;
            obj.HISOC_RIESGO_ENFERMEDADES = txtRiesgoEnf.Text;
            obj.HISOC_FLAG_ANTECEDENTES_SANGRADO = (string)rdAntSangrado.Value;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdEstructuraSoc.Value;
            if (BL_RegistrarHistoriaSocial.InsertarHistoriaSocial(obj))
            {
                operacion = "M";
                this.getObtenerHistoriaSocial((Int32)Session["IDAtencion"]);
                MostrarComentario("Se registró correctamente el Historia Social.");
            }
            else
            {
                MostrarComentario("Error al registrar Historia Social.");
            }

        }
        catch (Exception ex)
        {
            titulo = "Error al insertar Registro - Historia Social!";
            msg = ex.Message;
            MostrarComentario(msg, titulo);

        }
    }

    private void getObtenerHistoriaSocial(int idHistoriaSocial)
    {
        try
        {
            List<ATE_HISTORIA_SOCIAL> lista = new List<ATE_HISTORIA_SOCIAL>();
            lista = BL_RegistrarHistoriaSocial.GetHistoriaSocial(idHistoriaSocial);

            if (lista.Count() == 0) {
                operacion = "C";
                return;
            }

            Session["id_HistoriaSocial"]=lista[0].HISOC_ID_HISTORIA_SOCIAL;
            txtActividadLab.Text = lista[0].HISOC_ACTIVIDAD_LABORAL;
            txtEnfermedad.Text = lista[0].HISOC_ENFERMEDADES_FAMILIA;
            txtRiesgoEnf.Text = lista[0].HISOC_RIESGO_ENFERMEDADES;
            if (lista[0].HISOC_FLAG_ANTECEDENTES_SANGRADO == "S")
            {
                rdAntSangrado.SelectedIndex = 1;
            }
            else
            {
                rdAntSangrado.SelectedIndex = 2;
            }
            if (lista[0].HISOC_FLAG_DINAMICA_FAMILIAR == "A")
            {
                rdDinamicaFam.SelectedIndex = 1;
            }
            else { rdDinamicaFam.SelectedIndex = 2; }
            if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "A")
            {
                rdEstructuraSoc.SelectedIndex = 1;
            }
            else if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "M")
            {
                rdEstructuraSoc.SelectedIndex = 2;

            }
            else if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "B") { }
            rdEstructuraSoc.SelectedIndex = 3;
        }
        catch (Exception ex)
        {
            titulo = "Error al listar Historia Social.";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }
    private void cancelar()
    {
        rdAntSangrado.SelectedIndex = 1;
        rdDinamicaFam.SelectedIndex = 1;
        rdEstructuraSoc.SelectedIndex = 1;
        txtActividadLab.Text = string.Empty;
        txtEnfermedad.Text = string.Empty;
        txtRiesgoEnf.Text = string.Empty;
    }

    private void MostrarComentario(String msg, String titulo)
    {
        abrirAlerta(msg, titulo);
    }

    private void MostrarComentario(String msg)
    {
        abrirAlerta(msg, "Mensaje");
    }

    protected internal void abrirAlerta(String msg, String titulo)
    {
        pcMensajeHS.HeaderText = titulo;
        lblMensaje.Text = msg;
        ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensajeHS.Show();", true);
    }

    private void ModificarHistoriaSocial()
    {
        ATE_HISTORIA_SOCIAL obj = new ATE_HISTORIA_SOCIAL();
       
        try
        {

            obj.HISOC_ID_HISTORIA_SOCIAL = (Int32)Session["id_HistoriaSocial"];
            //obj.ATE_ID_ATENCION = (Int32)Session["IDAtencion"]; 
            //obj.ATE_ID_ATENCION = idPruebaAtencion;
            obj.HISOC_FLAG_DINAMICA_FAMILIAR = (string)rdDinamicaFam.Value;
            obj.HISOC_ACTIVIDAD_LABORAL = txtActividadLab.Text;
            obj.HISOC_ENFERMEDADES_FAMILIA = txtEnfermedad.Text;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdEstructuraSoc.Value;
            obj.HISOC_RIESGO_ENFERMEDADES = txtRiesgoEnf.Text;
            obj.HISOC_FLAG_ANTECEDENTES_SANGRADO = (string)rdAntSangrado.Value;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdEstructuraSoc.Value;
            if (BL_RegistrarHistoriaSocial.ModificarHistoriaSocial(obj))
            {
                MostrarComentario("Se actualizo correctamente la Historia Social.");
            }
            else
            {
                MostrarComentario("Error al actualizar Historia Social.");
            }

        }
        catch (Exception ex)
        {
            titulo = "Error al insertar Registro Historia Social!";
            msg = ex.Message;
            MostrarComentario(msg, titulo);

        }
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("wfAtencion.aspx");
    }
}